package com.itlong.cloud.noncore.operate;

import com.itlong.cloud.POJO.DTO.operate.OperateProjectInfoGetPageDTO;
import com.itlong.cloud.POJO.DTO.operate.OperateUiInfoPageDTO;
import com.itlong.cloud.POJO.DTO.operate.OperateUiInfoSaveDTO;
import com.itlong.cloud.POJO.VO.operate.OperateUiInfoGetOneVO;
import com.itlong.cloud.POJO.VO.operate.OperateUiInfoGetPageVO;
import com.itlong.cloud.POJO.VO.operate.OperateUiProjectInfoVO;
import com.itlong.cloud.utils.page.Page;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;

/**
 * <desc>
 *      运营-UI管理。
 * <desc/>
 *
 * @createDate 2018-03-20.
 */
@FeignClient("non-core-service")
public interface IOperateUiManageServiceClient {

    /**
     * <desc>
     *      保存UI信息。
     * <desc/>
     *
     * @param  saveDTO
     * @return
     * @author shengen.T
     * @createDate 2018-03-20
     */
    @RequestMapping(path = "/operate/system/uiManage/add")
    Integer saveUiInfo(@RequestBody OperateUiInfoSaveDTO saveDTO) throws Exception;

    /**
     * <desc>
     *      保存UI信息。
     * <desc/>
     *
     * @param  saveDTO
     * @return
     * @author shengen.T
     * @createDate 2018-03-20
     */
    @RequestMapping(path = "/operate/system/uiManage/update")
    Integer updateUiInfo(@RequestBody OperateUiInfoSaveDTO saveDTO) throws Exception;


    /**
     * <desc>
     *      获取UI详细信息。
     * <desc/>
     *
     * @param  uiId
     * @return
     * @author shengen.T
     * @createDate 2018-03-22
     */
    @RequestMapping(path = "/operate/system/uiManage/getOne")
    OperateUiInfoGetOneVO getOneUiInfo(@RequestParam("uiId") String uiId) throws Exception;

    /**
     * <desc>
     *      删除UI信息。
     * <desc/>
     *
     * @param  uiIds
     * @return
     * @author shengen.T
     * @createDate 2018-03-21
     */
    @RequestMapping(path = "/operate/system/uiManage/delete")
    Integer delUiInfo(@RequestParam("uiIds") String uiIds) throws Exception;

    /**
     * <desc>
     *      设置UI启用禁用。
     * <desc/>
     *
     * @param  uiId
     * @param  type
     * @return
     * @author shengen.T
     * @createDate 2018-03-21
     */
    @RequestMapping(path = "/operate/system/uiManage/setStatus")
    Integer setStatus(@RequestParam("uiId") String uiId ,@RequestParam("type") Integer type) throws Exception;

    /**
     * <desc>
     *      分页获取信息。
     * <desc/>
     *
     * @param  pageDTO
     * @return
     * @author shengen.T
     * @createDate 2018-03-22
     */
    @RequestMapping(path = "/operate/system/uiManage/getPage")
    Page<OperateUiInfoGetPageVO> getPageUiInfo(OperateUiInfoPageDTO pageDTO) throws Exception;

    /**
     * <desc>
     *      分页查询项目信息
     * <desc/>
     *
     * @param pageDTO 分页查询项目信息DTO
     * @return
     * @author shengen.T
     * @createDate 2018-03-23
     */
    @RequestMapping(path = "/operate/system/uiManage/getPageProject")
    Page<OperateUiProjectInfoVO> getPageProject(OperateProjectInfoGetPageDTO pageDTO) throws Exception;
}
